<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Sede extends CI_Controller {

	// Constructor de Clase
	function __construct() {
		parent::__construct();

		$this->load->model('Model_Sede');
		$this->load->library('sedeLib');

		$this->form_validation->set_message('required', 'Debe ingresar un valor para %s');
		$this->form_validation->set_message('numeric', '%s debe ser un número');
		$this->form_validation->set_message('my_validation', 'Existe otro registro con el mismo nombre');		
	}

	public function index() {
		$data['contenido'] = 'sede/index';
		$data['titulo'] = 'Sede';
		$data['query'] = $this->Model_Sede->all();
		$this->load->view('template', $data);
	}

	public function search() {
		$data['contenido'] = 'sede/index';
		$data['titulo'] = 'Sede';
		$value = $this->input->post('buscar');
		$data['query'] = $this->Model_Sede->allFiltered('name', $value);
		$this->load->view('template', $data);
	}

	public function my_validation() {
		return $this->sedelib->my_validation($this->input->post());
	}

	public function create() {
		$data['contenido'] = 'sede/create';
		$data['titulo'] = 'Crear Sede';
		$this->load->view('template', $data);
	}

	public function insert() {
		$registro = $this->input->post();

		$this->form_validation->set_rules('name', 'Nombre', 'required|callback_my_validation');
		$this->form_validation->set_rules('direccion', 'Direccion', 'required');
		$this->form_validation->set_rules('imagen', 'Imagen', 'required');
		//la longitud y la latitud no sin obligatorias		
		$this->form_validation->set_rules('latitud', 'Latitud', 'numeric');		
		$this->form_validation->set_rules('longitud', 'Longitud', 'numeric');
		$this->form_validation->set_rules('descripcion', 'Descripcion', 'required');		
		
		if($this->form_validation->run() == FALSE) {
			$this->create();
		}
		else {
			$this->Model_Sede->insert($registro);
			redirect('sede/index/create_success');
		}
	}

	public function edit($id) {
		$data['contenido'] = 'sede/edit';
		$data['titulo'] = 'Actualizar Sede';
		$data['registro'] = $this->Model_Sede->find($id);
		$this->load->view('template', $data);
	}

	public function update() {
		$registro = $this->input->post();
		//la longitud y la latitud no sin obligatorias
		$this->form_validation->set_rules('name', 'Nombre', 'required|callback_my_validation');
		$this->form_validation->set_rules('direccion', 'Direccion', 'required');
		$this->form_validation->set_rules('imagen', 'Imagen', 'required');
		$this->form_validation->set_rules('descripcion', 'Descripcion', 'required');
		if($this->form_validation->run() == FALSE) {
			$this->edit($registro['id']);
		}
		else {
			$this->Model_Sede->update($registro);
			redirect('sede/index/success');
		}
	}	

	public function delete($id) {
		$this->Model_Sede->delete($id);
		redirect('sede/index/delete_success');
	}
}
